#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

// 孤儿进程
int main()
{
    pid_t id = fork();
    if(id < 0) return 1;
    else if(id == 0)
    {
        // child 
        while(1)
        {
            printf("I am child ...\n");
            sleep(1);
        }
    }
    else 
    {
        // father
        int cnt = 5;
        while(cnt)
        {
            printf("I am child, run times: %d\n", cnt--);
            sleep(1);
        }
        printf("I am child, dead: %d\n", cnt--);
        exit(2);

        // 回收操作
    }

    return 0;
}

// 僵尸进程
//int main()
//{
//    pid_t id = fork();
//    if(id < 0) return 1;
//    else if(id == 0)
//    {
//        // child
//        int cnt = 5;
//        while(cnt)
//        {
//            printf("I am child, run times: %d\n", cnt--);
//            sleep(1);
//        }
//        printf("I am child, dead: %d\n", cnt--);
//        exit(2);
//    }
//    else 
//    {
//        // parent
//        while(1)
//        {
//            printf("I am father, running any time!\n");
//            sleep(1);
//        }
//
//        // 回收操作
//    }
//
//    return 0;
//}
